package com.hyjiacan.apps.audionly.data.repository

import com.hyjiacan.apps.audionly.data.model.TaskInfo

/**
 * 任务仓库接口
 */
interface TaskRepository {
    /**
     * 插入新任务
     * @param taskInfo 任务信息
     * @return 插入是否成功
     */
    suspend fun insertTask(taskInfo: TaskInfo): Boolean

    /**
     * 更新任务信息
     * @param taskInfo 任务信息
     * @return 更新是否成功
     */
    suspend fun updateTask(taskInfo: TaskInfo): Boolean

    /**
     * 根据ID获取任务
     * @param taskId 任务ID
     * @return 任务信息，若不存在则返回null
     */
    suspend fun getTaskById(taskId: String): TaskInfo?

    /**
     * 获取所有任务
     * @return 任务列表
     */
    suspend fun getAllTasks(): List<TaskInfo>

    /**
     * 根据状态获取任务
     * @param status 任务状态
     * @return 任务列表
     */
    suspend fun getTasksByStatus(status: TaskInfo.Status): List<TaskInfo>

    /**
     * 删除任务
     * @param taskId 任务ID
     * @return 删除是否成功
     */
    suspend fun deleteTask(taskId: String): Boolean
}